package com.yy.wga.pay.service.client.response.alipay;

import com.alibaba.fastjson.annotation.JSONField;
import com.yy.wga.pay.service.client.response.BaseQueryOrderResponse;
import com.yy.wga.mp.module.pay.common.eunms.EAliPayTradeStatus;
import com.yy.wga.pay.service.client.response.BaseQueryOrderResponse;
import com.yy.wga.mp.module.pay.common.eunms.EAliPayTradeStatus;
import com.yy.wga.pay.service.client.response.BaseQueryOrderResponse;
import com.yy.wga.mp.module.pay.common.eunms.EAliPayTradeStatus;
import com.yy.wga.pay.service.client.response.BaseQueryOrderResponse;
import com.yy.wga.mp.module.pay.common.eunms.EAliPayTradeStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.Date;

/**
 * @Author: gc
 * @Date: 2021/6/13
 * @Description: https://opendocs.alipay.com/apis/028xq9
 **/
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class AliPayQueryOrderResponse extends BaseQueryOrderResponse {
    private static final long serialVersionUID = 8273118107201364099L;

    /**
     * 商户订单号
     */
    @JSONField(name = "out_trade_no")
    private String outTradeNo;

    /**
     * 支付宝交易号
     */
    @JSONField(name = "trade_no")
    private String tradeNo;

    /**
     * 买家支付宝账号
     */
    @JSONField(name = "buyer_logon_id")
    private String buyerLogonId;

    /**
     * 订单状态
     */
    @JSONField(name = "trade_status")
    private EAliPayTradeStatus tradeStatus;

    /**
     * 交易类型
     * JSAPI：公众号支付
     * NATIVE：扫码支付
     * APP：APP支付
     * MICROPAY：付款码支付
     * MWEB：H5支付
     * FACEPAY：刷脸支付
     */
    @JSONField(name = "trade_type")
    private String tradeType;
    /**
     * 订单总金额。单位为元，精确到小数点后两位
     */
    @JSONField(name = "total_amount")
    private String totalAmount;
    /**
     * 收款支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字
     */
    @JSONField(name = "seller_id")
    private String sellerId;
    /**
     * 标价币种，该参数的值为支付时传入的trans_currency
     */
    @JSONField(name = "trans_currency")
    private String transCurrency;
    /**
     * 订单结算币种，对应支付接口传入的settle_currency
     */
    @JSONField(name = "settle_currency")
    private String settleCurrency;
    /**
     * 结算币种订单金额
     */
    @JSONField(name = "settle_amount")
    private String settleAmount;
    /**
     * 订单支付币种
     */
    @JSONField(name = "pay_currency")
    private String payCurrency;
    /**
     * 支付币种订单金额
     */
    @JSONField(name = "pay_amount")
    private String payAmount;
    /**
     * 买家实付金额，单位为元，两位小数
     */
    @JSONField(name = "buyer_pay_amount")
    private String buyerPayAmount;
    /**
     * 订单标题
     */
    private String subject;
    /**
     * 订单描述
     */
    private String body;
    /**
     * 本次交易打款给卖家的时间
     */
    @JSONField(name = "send_pay_date")
    private Date sendPayDate;

}
